#ifndef __DEFS_H_
#define __DEFS_H_

#include <boost/config.hpp>
#include <iostream>
#include <boost/graph/adjacency_list.hpp>
#include <boost/graph/prim_minimum_spanning_tree.hpp>

using namespace boost;

typedef adjacency_list < vecS, vecS, undirectedS,
  property<vertex_distance_t, int>, property < edge_weight_t, int > > Graph_t; // graph

typedef std::pair < int, int >E; // a pair of integers

typedef graph_traits < Graph_t >::out_edge_iterator out_edge_iterator_t; // out edge iterator

typedef graph_traits < Graph_t >::vertex_iterator vertex_iterator_t; // vertex iterator 

typedef graph_traits < Graph_t >::edge_iterator edge_iterator_t; // edge iterator

typedef graph_traits < Graph_t >::edge_descriptor edge_descriptor_t; // edge descriptor

typedef graph_traits < Graph_t >::degree_size_type degree_size_type_t; // degree size type 

typedef property_map< Graph_t, edge_weight_t >::type weightmap_t; // weightmap

typedef graph_traits < Graph_t >::vertices_size_type Vsize_t; // size type
 

#endif 
